/*【程序19】   
题目：打印出如下图案（菱形）   
   *   
  ***   
 *****   
*******   
 *****   
  ***   
   *   
 */
//总结：
// 奇数行大循环：i=1;i<b+1  b=a/2+1;
//     空格：j=0;j<b-i;
//     打印*号：奇数（k<2*i-1）   偶数（k<2*i）
//     空格：i=b-i;

//偶数大循环：i=1;i<b+1;     b=a/2;
//		空格：j=0;j<b-i
//		打印*号：奇数（k<2*i-1）   偶数（k<2*i）
//		空格：i=b-i;
public class TestLingXing {

	public static void main(String[] args) {
		// 打印菱形
		
		//打印偶数行，奇数*
		//test00();
		
		//打印奇数行，打印偶数*
		test01();
	}
	private static void test00() {
		//a：行数：7  
				//偶数b=a/2   奇数行b=a/2+1
				//外层控制行数，共a行，根据星数递增，以便容易找到与k的关系规律
				
				//奇数
				//输出上层部分  i=b+1  
				for(int i=1;i<5;i++) {
					//每行循环次数是b-i次
					for(int j=0;j<4-i;j++) {
						System.out.print(" ");
					}
					//内二次控制输出星数，星数与行数i之间的关系是：j=2i-1，即每行循环次数是2i-1次
					for(int k=0;k<2*i-1;k++) {
						System.out.print("*");
					}
					System.out.println();
				}
				//输出下层
				//偶数：i=a/2-1     奇数：i=a/2
				for(int i=3;i>0;i--) {
					//奇数行每行循环次数是a/2-i+1次
					//偶数行每行循环次数是a/2-i次
					for(int j=0;j<4-i;j++) {
						System.out.print(" ");
					}
					for(int k=0;k<2*i-1;k++) {
						System.out.print("*");
					}
					System.out.println();
				}
	}
	private static void test01() {
		//打印偶数行  a=6
		//奇数：i<b+1  b=a/2
		for(int i=1;i<4;i++) {
			//空格数j跟行数i的关系即j=b-i，即每行循环次数是b-i次
			for(int j=0;j<3-i;j++) {
				System.out.print(" ");
			}
			//偶数*：星数与行数i之间的关系是：j=2i，即每行循环次数是2i次
			for(int k=0;k<2*i-1;k++) {
				System.out.print("*");
			}
			System.out.println();
		}
		//输出下层
		//奇数：i=a/2
		for(int i=3;i>0;i--) {
			//偶数行每行循环次数是a/2-i次
			for(int j=0;j<3-i;j++) {
				System.out.print(" ");
			}
			for(int k=0;k<2*i-1;k++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}

}
